During manufacturing of computers, it is necessary to conduct a series of tests on the computers to determine whether they are ready to ship.
In the past, once a computer had been fully assembled, it was loaded with diagnostic test software which functioned to check the various components and peripherals constituting the computer. This test software was able to use the computer's own processor to operate. Thus, a computer could use its own resources to perform a self-test; operation of the test software was automatic.
Within the general framework of testing components and peripherals, it is highly desirable to test whether a computer can successfully initialize itself following initial application of power (typically called "booting" or a "boot"). This is an especially important test because booting is not a trivial task for the computer. When a computer boots, it preferably puts itself through a series of self-diagnostic tests designed to check proper functioning of memory, ports and peripheral devices as a condition precedent to successful operation of the computer. These tests are usually stored in read-only memory within the computer. Because of the complexity inherent in booting, it is unacceptable to ship a computer from the factory which has not been tested to see whether it can boot itself properly.
Unfortunately, to boot a computer requires complete removal of all power from the computer and, following a period of total lack of power, restoration of the power to begin a boot. Unlike other tests and diagnostics, which can operate using the computer's own processor, a processor, once unplugged, cannot plug itself back in. In other words, a processor can order its own death but, once it has died, it no longer has power to order its own rebirth. Therefore, in the past, boot tests had to be performed with human intervention. Thus, a person had to physically turn power off to a computer and wait for a predetermined period of time to then restore power to the computer by physically turning it on.
To successfully perform a boot test, the computer would have to remain off for a predetermined period of time to assure full removal of power from all components and peripherals and, possibly, to assure that the computer had to cool to a certain temperature. Therefore, the human test operator had to accurately time how long the computer has remained off before restoring its power. As with other processes requiring human intervention, this prior art method of testing resulted in errors in timing due to a human operator's lack of attention to the process. Occasionally, these errors might result in the computer's appearing to successfully complete a boot test which, had the boot test been properly performed, the computer should have failed. In today's environment of tight quality control, this is unacceptable. Furthermore, due to these varying periods of off time, a computer may be without power for too long a time. While this may not prejudice the test being performed, it nonetheless results in inefficiencies in the testing process because the testing process would take longer than it should.
Finally, it is expensive and boring for human operators to flip switches on computers all day long. This is so even if the above-noted deficiencies in human operation of the test were ignored.
Therefore, it is apparent that there is a need in the field of computer boot testing to provide an automatic computer boot testing apparatus and method to thereby allow a computer being tested to order its own power to be turned off and, following a precisely gauged period of time, have its power turned back on to determine whether it has properly booted itself.